Ext.namespace('pages.p2p.jkgl.dfgl');

pages.p2p.jkgl.dfgl.Main = function(config) {
	Ext.apply(this, config);
	this.initUIComponents();
	pages.p2p.jkgl.dfgl.Main.superclass.constructor.call(this);
};

Ext.extend(pages.p2p.jkgl.dfgl.Main, Ext.Panel, {
	/**
	 * 构造函数
	 */
	initUIComponents : function() {
		this.queryForm = new Ext.form.FormPanel({
			layout : 'column',
			region : 'north',
			labelWidth : 100,
			labelAlign : 'right',
			autoHeight : true,
			border : false,
			frame : false,
			items : [{
						columnWidth : 1,
						height : 10,
						border : false
					}, {
						columnWidth : .25,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '应还开始日期',
									name : 'START_DATE',
									id : 'START_DATE',
									anchor : '96%',
									format : 'Y-m-d',
									xtype : 'datefield'
								}]
					}, {
						columnWidth : .25,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '应还结束日期',
									name : 'END_DATE',
									id : 'END_DATE',
									anchor : '96%',
									format : 'Y-m-d',
									xtype : 'datefield'
								}]
					}, {
						columnWidth : .25,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '实还开始日期',
									name : 'START_DATE_REAL',
									id : 'START_DATE_REAL',
									anchor : '96%',
									format : 'Y-m-d',
									xtype : 'datefield'
								}]
					}, {
						columnWidth : .25,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '实还结束日期',
									name : 'END_DATE_REAL',
									id : 'END_DATE_REAL',
									anchor : '96%',
									format : 'Y-m-d',
									xtype : 'datefield'
								}]
					}, {
						columnWidth : .25,
						layout : 'form',
						border : false,
						hidden : false,
						items : [new Ext.form.ComboBox({
									fieldLabel : '项目类型',
									name : 'XM_TYPE',
									id : 'XM_TYPE',
									anchor : '96%',
									store : new Ext.data.SimpleStore({
												fields : ['VALUE', 'TEXT'],
												data : [['', '全部'],
														['01', '红点宝'],
														['02', 'H计划']]
											}),
									valueField : 'VALUE',
									displayField : 'TEXT',
									hiddenName : 'XM_TYPE_VALUE',
									triggerAction : 'all',
									mode : 'local',
									editable : false,
									selectOnFocus : true,
									value : ''
								})]
					}, {
						columnWidth : .25,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '项目名称',
									name : 'XMMC',
									id : 'XMMC',
									anchor : '96%',
									xtype : 'textfield'
								}]
					}, {
						columnWidth : .25,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : 'H计划库名称',
									name : 'KUMC',
									id : 'KUMC',
									anchor : '96%',
									xtype : 'textfield'
								}]
					}, {
						columnWidth : .25,
						layout : 'form',
						border : false,
						hidden : false,
						items : [new Ext.form.ComboBox({
									fieldLabel : '还款状态',
									name : 'HKZT',
									id : 'HKZT',
									anchor : '96%',
									store : new Ext.data.SimpleStore({
												fields : ['VALUE', 'TEXT'],
												data : [['', '全部'],
														['1001', '未还款'],
														['1002', '逾期中'],
														['1003', '逾期中,垫付'],
														['2001', '已还款'],
														['2002', '已还款,逾期'],
														['2003', '已还款,逾期,垫付'],
														['2004', '已还款,线下已还,垫付']]
											}),
									valueField : 'VALUE',
									displayField : 'TEXT',
									hiddenName : 'HKZT_VALUE',
									triggerAction : 'all',
									mode : 'local',
									editable : false,
									selectOnFocus : true,
									value : ''
								})]
					}, {
						columnWidth : .25,
						layout : 'form',
						border : false,
						items : [{
									fieldLabel : '用户名',
									name : 'USERNAME',
									id : 'USERNAME',
									anchor : '96%',
									xtype : 'textfield'
								}]
					}]
		});
		this.store = new Ext.data.Store({
					proxy : new Ext.data.HttpProxy({
								url : ExtJ
										.getActionPath('jkgl/listYhkAndDfInfo.do')
							}),
					remoteSort : true,
					reader : new Ext.data.JsonReader({
								root : 'data',
								totalProperty : 'total',
								sumJe : 'sumJe',
								id : 'ID'
							}, [{
                                        name : 'ID',
                                        mapping : 'ID'
                                    }, {
										name : 'SSQS',
										mapping : 'SSQS'
									}, {
										name : 'YHLX_DATE',
										mapping : 'YHLX_DATE'
									}, {
										name : 'YHBJ',
										mapping : 'YHBJ'
									}, {
										name : 'YHLX',
										mapping : 'YHLX'
									}, {
										name : 'YHHJ',
										mapping : 'YHHJ'
									}, {
										name : 'YHK_XM_TYPE',
										mapping : 'YHK_XM_TYPE'
									}, {
										name : 'REF_XM_ID',
										mapping : 'REF_XM_ID'
									}, {
										name : 'REF_XM_NAME',
										mapping : 'REF_XM_NAME'
									}, {
										name : 'REF_KU_ID',
										mapping : 'REF_KU_ID'
									}, {
										name : 'REF_KU_NAME',
										mapping : 'REF_KU_NAME'
									}, {
										name : 'REF_JKR_USERNAME',
										mapping : 'REF_JKR_USERNAME'
									}, {
										name : 'YHK_QS_STATE',
										mapping : 'YHK_QS_STATE'
									}, {
										name : 'YHK_YQ_TS',
										mapping : 'YHK_YQ_TS'
									}, {
										name : 'YHK_YQ_JE',
										mapping : 'YHK_YQ_JE'
									}, {
										name : 'HK_DATE',
										mapping : 'HK_DATE'
									}, {
										name : 'REF_HK_ID',
										mapping : 'REF_HK_ID'
									}])
				});

		this.eug_gs = new Ext.ux.grid.GridSummary();
		var sm = new Ext.grid.CheckboxSelectionModel({
					singleSelect : true,
					listeners : {
						'rowselect' : function(sm, rowIndex, record) {
							var state = record.get("YHK_QS_STATE");
							if ('1001' == state||'1002' == state) {
								Ext.getCmp('add').setDisabled(false);
							} else {
								Ext.getCmp('add').setDisabled(true);
							}
						}
					}
				});

		var cm = new Ext.grid.ColumnModel([sm, new Ext.grid.RowNumberer(), {
					header : '用户名',
					width : 150,
					sortable : true,
					dataIndex : 'REF_JKR_USERNAME'
				}, {
					header : '项目类型',
					width : 60,
					sortable : true,
					dataIndex : 'YHK_XM_TYPE',
					renderer : function(v) {
						if ("01" == v) {
							return "红点宝";
						} else if ("02" == v) {
							return "H计划";
						}
					}
				}, {
					header : '项目名称',
					width : 300,
					sortable : true,
					dataIndex : 'REF_XM_NAME'
				}, {
					header : 'H计划库名称',
					width : 150,
					sortable : true,
					hidden : true,
					dataIndex : 'REF_KU_NAME'

				}, {
					header : '所属期数',
					width : 60,
					sortable : true,
					dataIndex : 'SSQS'
				}, {
					header : '应还款时间',
					width : 100,
					sortable : true,
					dataIndex : 'YHLX_DATE'
				}, {
					header : '应还本金',
					width : 200,
					sortable : true,
					dataIndex : 'YHBJ',
					summaryRenderer : function(val) {
						if (null == this.store.reader.jsonData
								|| undefined == this.store.reader.jsonData) {
							return "0.00";
						}
						var sumJe = this.store.reader.jsonData.sumJe;
						if (null == sumJe.YHBJ || undefined == sumJe.YHBJ) {
							return '0.00';
						}
						return '<span style="color:#FF0000;font-weight:bold;font-size:18px;">'
								+ Ext.util.Format.substr(Ext.util.Format
												.usMoney(sumJe.YHBJ), 1)
								+ '￥</span>';
					}.createDelegate(this)
				}, {
					header : '应还利息',
					width : 200,
					sortable : true,
					dataIndex : 'YHLX',
					summaryRenderer : function(val) {
						if (null == this.store.reader.jsonData
								|| undefined == this.store.reader.jsonData) {
							return "0.00";
						}
						var sumJe = this.store.reader.jsonData.sumJe;
						if (null == sumJe.YHLX || undefined == sumJe.YHLX) {
							return '0.00';
						}
						return '<span style="color:#FF0000;font-weight:bold;font-size:18px;">'
								+ Ext.util.Format.substr(Ext.util.Format
												.usMoney(sumJe.YHLX), 1)
								+ '￥</span>';
					}.createDelegate(this)
				}, {
					header : '应还款合计',
					width : 200,
					sortable : true,
					dataIndex : 'YHHJ',
					summaryRenderer : function(val) {
						if (null == this.store.reader.jsonData
								|| undefined == this.store.reader.jsonData) {
							return "0.00";
						}
						var sumJe = this.store.reader.jsonData.sumJe;
						if (null == sumJe.YHHJ || undefined == sumJe.YHHJ) {
							return '0.00';
						}
						return '<span style="color:#FF0000;font-weight:bold;font-size:18px;">'
								+ Ext.util.Format.substr(Ext.util.Format
												.usMoney(sumJe.YHHJ), 1)
								+ '￥</span>';
					}.createDelegate(this)
				}, {
					header : '还款状态',
					width : 90,
					sortable : true,
					dataIndex : 'YHK_QS_STATE',
					renderer : function(v) {
						if ("1001" == v) {
							return "未还款";
						} else if ("1002" == v) {
							return "逾期中";
						} else if ("1003" == v) {
							return "逾期中,垫付";
						} else if ("2001" == v) {
							return "已还款";
						} else if ("2002" == v) {
							return "已还款,逾期";
						} else if ("2003" == v) {
							return "已还款,逾期,垫付";
						} else if ("2004" == v) {
							return "已还款,线下已还,垫付";
						}
					}
				}, {
					header : '实际还款时间',
					width : 100,
					sortable : true,
					dataIndex : 'HK_DATE'
				}, {
					header : '逾期天数 ',
					width : 100,
					sortable : true,
					dataIndex : 'YHK_YQ_TS'
				}, {
					header : '逾期罚息',
					width : 200,
					sortable : true,
					dataIndex : 'YHK_YQ_JE',
					summaryRenderer : function(val) {
						if (null == this.store.reader.jsonData
								|| undefined == this.store.reader.jsonData) {
							return "0.00";
						}
						var sumJe = this.store.reader.jsonData.sumJe;
						if (null == sumJe.YHK_YQ_JE
								|| undefined == sumJe.YHK_YQ_JE) {
							return '0.00';
						}
						return '<span style="color:#FF0000;font-weight:bold;font-size:18px;">'
								+ Ext.util.Format.substr(Ext.util.Format
												.usMoney(sumJe.YHK_YQ_JE), 1)
								+ '￥</span>';
					}.createDelegate(this)
				}]);

		/**
		 * GridPanel
		 */
		this.grid = new Ext.grid.GridPanel({
					id : 'grid',
					region : 'center',
					store : this.store,
					plugins : this.eug_gs,
					border : true,
					frame : false,
					viewConfig : {
						autoFill : false,
						forceFit : false,
						focusRow : function() {
							return;
						},
						getRowClass : function(record, rowIndex, rowParams,
								store) {
							if (record.get("TOP_LEVEL") == "1") {
								return 'ux-grid-record-onTop';
							}
						}
					},
					sm : sm,
					cm : cm,
					tbar : [{
								id : 'query',
								iconCls : 'query',
								text : '查询',
								handler : this.onQuery.createDelegate(this)
							}, '-', {
								id : 'clear',
								iconCls : 'reset',
								text : '重置',
								handler : this.onReset.createDelegate(this)
							}, '-', {
								id : 'add',
								iconCls : 'add',
								text : '垫付操作',
								handler : this.onAdd.createDelegate(this)
							}/*, '-', {
								id : 'excel',
								iconCls : 'excel',
								text : '下载Excel',
								handler : this.onExport.createDelegate(this)
							}*/],
					bbar : new Ext.PagingToolbar({
								pageSize : pageSize,
								store : this.store,
								displayInfo : true,
								displayMsg : '当前显示第 {0} - {1} 条 / 共 {2} 条',
								emptyMsg : "没有记录"
							})
				});

		Ext.apply(this, {
					closeAction : 'close',
					layout : 'border',
					border : false,
					listeners : {
						'render' : this.initData.createDelegate(this)
					},
					items : [this.queryForm, this.grid]
				})
	},

	initData : function() {
		this.onQuery();
	},
	onQuery : function() {
		this.store.baseParams.startDate = Ext.getCmp('START_DATE')
				.getRawValue();
		this.store.baseParams.endDate = Ext.getCmp('END_DATE').getRawValue();
		this.store.baseParams.startDateReal = Ext.getCmp('START_DATE_REAL')
				.getRawValue();
		this.store.baseParams.endDateReal = Ext.getCmp('END_DATE_REAL')
				.getRawValue();
		this.store.baseParams.xmType = Ext.getCmp('XM_TYPE').getValue();
		this.store.baseParams.xmmc = Ext.getCmp('XMMC').getValue();
		this.store.baseParams.kumc = Ext.getCmp('KUMC').getValue();
		this.store.baseParams.hkzt = Ext.getCmp('HKZT').getValue();
		this.store.baseParams.username = Ext.getCmp('USERNAME').getValue();
		var startDate = Ext.getCmp('START_DATE').getRawValue();
		var endDate = Ext.getCmp('END_DATE').getRawValue();
		if (startDate > endDate) {
			Ext.Msg.alert('提示', '应还开始时间不能大于应还结束时间!');
			return;
		}
		var startDateReal = Ext.getCmp('START_DATE_REAL').getRawValue();
		var endDateReal = Ext.getCmp('END_DATE_REAL').getRawValue();
		if (startDateReal > endDateReal) {
			Ext.Msg.alert('提示', '实还开始时间不能大于实还结束时间!');
			return;
		}
		Ext.getBody().mask("正在查询,请稍候...");
		this.store.reload({
					params : {
						start : 0,
						limit : pageSize
					},
					callback : function() {
						Ext.getBody().unmask(true);
					}
				});
	},
	onReset : function() {
		this.queryForm.getForm().reset();
	},
	onAdd : function() {
		var record = this.grid.getSelectionModel().getSelected();
		if (!record) {
			ExtJ.showMessage("请选择一条需要垫付的记录!");
			return;
		}
		var win = new pages.p2p.jkgl.dfgl.Add({
					operType : 'add',
					record : record
				});
		win.show();
	}/*,
	onExport : function() {
		var startDate = Ext.getCmp('START_DATE').getRawValue();
		var endDate = Ext.getCmp('END_DATE').getRawValue();
		var xmmc = Ext.getCmp('XMMCT').getRawValue();
		var zqid = Ext.getCmp('ZQID').getValue();
		var zt = Ext.getCmp('Q_ZT').getValue();
		var xmType = Ext.getCmp('XM_TYPE').getValue();
		var dfr = Ext.getCmp('DFR').getValue();
		if (startDate > endDate) {
			Ext.Msg.alert('提示', '开始时间不能大于结束时间!');
			return;
		}
		var url = baseUrl + "/jkgl/exportYhkmxExcelMethod.do?startDate="
				+ startDate + "&endDate=" + endDate + "&xmmc=" + xmmc
				+ "&zqid=" + zqid + "&zt=" + zt + "&xmType=" + xmType + "&dfr="
				+ dfr;
		ExtJ.doExport({
					url : url,
					method : 'post'
				});
	}*/
});